// // 在一个递增有序的线性表中，有数值相同的元素存在。
// // 若存储方式为单链表，设计算法去掉数值相同的元素，使表中不再具有重复的元素。
// #include <stdio.h>
// #include <stdlib.h>
// #include "windows.h"
// #include <assert.h>
// //节点结构
// typedef struct LinkNode {
//     int data;
//     struct LinkNode* next;
// }LinkNode;
// //链表结构
// typedef struct LinkList {
//     LinkNode* head;
// }LinkList;
// //链表初始化
// LinkList* LinkInit() {
//     LinkList* list=(LinkList*)malloc(sizeof(LinkList));
//     list->head=(LinkNode*)malloc(sizeof(LinkNode));
//     list->head->next=NULL;
//     assert(list->head);
//     assert(list);
//     return list;
// }
//
// // 插入节点到链表尾部
// void LinkInsert(LinkList* list,int data) {
//     assert(list);
//     LinkNode* newNode=(LinkNode*)malloc(sizeof(LinkNode));
//     if(newNode==NULL) {
//         perror("malloc");
//         assert(newNode);
//     }
//     newNode->data=data;
//     newNode->next=NULL;
//     LinkNode* current=list->head;
//     while (current->next!=NULL) {
//         current=current->next;
//     }
//     current->next=newNode;
// }
// //头插法
// void LinkHeadInsert(LinkList* list,int data) {
//     LinkNode* newNode=malloc(sizeof(LinkNode));
//     if(newNode==NULL) {
//         perror("malloc");
//         assert(newNode);
//     }
//     newNode->data=data;
//     newNode->next=list->head->next;
//     list->head->next=newNode;
// }
//
// //打印链表
// void printLinkList(LinkList* list) {
//     LinkNode* current=list->head->next;
//     while(current!=NULL) {
//         printf("%d -> ",current->data);
//         current=current->next;
//     }
//     printf("\n");
// }
//
// void DeleteRepeat(LinkList* L) {
//     assert(L);
//     assert(L->head);
//     LinkNode* p=L->head->next;
//     LinkNode* next=L->head->next->next;
//     while (p!=NULL&&next!=NULL) {//注意next也加上
//         if(p->data==next->data) {
//             LinkNode* tmp=next;
//             next=next->next;
//             p->next=next;
//             free(tmp);
//             tmp=NULL;
//         }else {
//             p=next;
//             next=next->next;
//         }
//     }
// }
//
// int main() {
//     SetConsoleOutputCP(CP_UTF8);
//     LinkList* L=LinkInit();
//     assert(L->head);
//     LinkInsert(L,1);
//     LinkInsert(L,1);
//     LinkInsert(L,2);
//     LinkInsert(L,2);
//     LinkInsert(L,3);
//     LinkInsert(L,3);
//     printf("之前：");
//     printLinkList(L);
//     DeleteRepeat(L);
//     printf("\n");
//     printf("之后：");
//     printLinkList(L);
//     free(L->head);
//     free(L);
//     L=NULL;
//     return 0;
// }